
select_count = 4;

TC = new Object();

TC.EventMonitor = function(){
    this.listeners = new Object();
}

TC.EventMonitor.prototype.broadcast=function(widgetObj, msg, data){
    var lst = this.listeners[msg];
    if(lst != null){
        for(var o in lst){
            lst[o](widgetObj, data);
        }
    }
}
TC.EventMonitor.prototype.subscribe=function(msg, callback){
    var lst = this.listeners[msg];
    if (lst) {
        lst.push(callback);
    } else {
        this.listeners[msg] = [callback];
    }
}
TC.EventMonitor.prototype.unsubscribe=function(msg, callback){
    var lst = this.listener[msg];
    if (lst != null){
        lst = lst.filter(function(ele, index, arr){return ele!=callback;});
    }
}
var event_monitor = new TC.EventMonitor();
function load_event_monitor(root) {
    var re = /a_(\w+)/;
    var fns = {};
    $(".j", root).each(function(i) {
        var m = re.exec(this.className);
        if (m) {
            var f = fns[m[1]];
            if (!f) {
                f = eval("TC.init_"+m[1]);
                fns[m[1]] = f;
            }
            f && f(this);
        }
    });
}
$(function() {
    load_event_monitor(document);
});

//工作地点键值匹配数组
var ja=[];
ja['0100']='北京';ja['0101']='东城区';ja['0102']='西城区';ja['0103']='崇文区';ja['0104']='宣武区';ja['0105']='朝阳区';ja['0106']='丰台区';ja['0107']='石景山区';ja['0108']='海淀区';ja['0109']='门头沟区';ja['0110']='房山区';ja['0111']='通州区';ja['0112']='顺义区';ja['0113']='昌平区';ja['0114']='大兴区';ja['0115']='怀柔区';ja['0116']='平谷区';ja['0117']='密云县';ja['0118']='延庆县';
ja['0200']='上海';ja['0201']='黄浦区';ja['0202']='卢湾区';ja['0203']='徐汇区';ja['0204']='长宁区';ja['0205']='静安区';ja['0206']='普陀区';ja['0207']='闸北区';ja['0208']='虹口区';ja['0209']='杨浦区';ja['0210']='浦东新区';ja['0211']='闵行区';ja['0212']='宝山区';ja['0213']='嘉定区';ja['0214']='金山区';ja['0215']='松江区';ja['0216']='青浦区';ja['0217']='南汇区';ja['0218']='奉贤区';ja['0219']='崇明县';
ja['0300']='广东省';ja['0302']='广州';ja['0303']='惠州';ja['0304']='汕头';ja['0305']='珠海';ja['0306']='佛山';ja['0307']='中山';ja['0308']='东莞';ja['0314']='韶关';ja['0315']='江门';ja['0317']='湛江';ja['0318']='肇庆';ja['0319']='清远';ja['0320']='潮州';ja['0321']='河源';ja['0322']='揭阳';ja['0323']='茂名';ja['0324']='汕尾';ja['0325']='顺德';ja['0326']='梅州';ja['0327']='开平';ja['0328']='阳江';ja['0329']='云浮';
ja['0400']='深圳';ja['0401']='福田区';ja['0402']='罗湖区';ja['0403']='南山区';ja['0404']='盐田区';ja['0405']='宝安区';ja['0406']='龙岗区';ja['0407']='光明新区';
ja['0500']='天津';
ja['0600']='重庆';
ja['0700']='江苏省';ja['0702']='南京';ja['0703']='苏州';ja['0704']='无锡';ja['0705']='常州';ja['0706']='昆山';ja['0707']='常熟';ja['0708']='扬州';ja['0709']='南通';ja['0710']='镇江';ja['0711']='徐州';ja['0712']='连云港';ja['0713']='盐城';ja['0714']='张家港';ja['0715']='江阴';ja['0716']='太仓';ja['0717']='吴江';ja['0718']='泰州';ja['0719']='淮安';ja['0720']='宿迁';ja['0721']='丹阳';ja['0722']='溧阳';ja['0723']='泰兴';ja['0724']='宜兴';
ja['0800']='浙江省';ja['0802']='杭州';ja['0803']='宁波';ja['0804']='温州';ja['0805']='绍兴';ja['0806']='金华';ja['0807']='嘉兴';ja['0808']='台州';ja['0809']='湖州';ja['0810']='丽水';ja['0811']='舟山';ja['0812']='衢州';ja['0813']='萧山';ja['0814']='义乌';ja['0815']='慈溪';ja['0816']='海宁';
ja['0900']='四川省';ja['0902']='成都';ja['0903']='绵阳';ja['0904']='乐山';ja['0905']='泸州';ja['0906']='德阳';ja['0907']='宜宾';ja['0908']='自贡';ja['0909']='内江';ja['0910']='攀枝花';ja['0911']='南充';ja['0912']='眉山';
ja['1000']='海南省';ja['1002']='海口';ja['1003']='三亚';
ja['1100']='福建省';ja['1102']='福州';ja['1103']='厦门';ja['1104']='泉州';ja['1105']='漳州';ja['1106']='莆田';ja['1107']='三明';ja['1108']='南平';ja['1109']='宁德';ja['1110']='龙岩';
ja['1200']='山东省';ja['1202']='济南';ja['1203']='青岛';ja['1204']='烟台';ja['1205']='潍坊';ja['1206']='威海';ja['1207']='淄博';ja['1208']='临沂';ja['1209']='济宁';ja['1210']='东营';ja['1211']='泰安';ja['1212']='日照';ja['1213']='德州';ja['1214']='菏泽';ja['1215']='滨州';ja['1216']='枣庄';ja['1217']='聊城';ja['1218']='莱芜';
ja['1300']='江西省';ja['1302']='南昌';ja['1303']='九江';
ja['1400']='广西';ja['1402']='南宁';ja['1403']='桂林';ja['1404']='柳州';ja['1405']='北海';ja['1406']='玉林';
ja['1500']='安徽省';ja['1502']='合肥';ja['1503']='芜湖';ja['1504']='安庆';ja['1505']='马鞍山';ja['1506']='蚌埠';ja['1507']='阜阳';ja['1508']='铜陵';ja['1509']='滁州';ja['1510']='黄山';ja['1511']='淮南';ja['1512']='六安';ja['1513']='巢湖';ja['1514']='宣城';ja['1515']='池州';ja['1516']='宿州';
ja['1600']='河北省';ja['1602']='石家庄';ja['1603']='廊坊';ja['1604']='保定';ja['1605']='唐山';ja['1606']='秦皇岛';ja['1607']='邯郸';ja['1608']='沧州';ja['1609']='张家口';ja['1610']='承德';
ja['1700']='河南省';ja['1702']='郑州';ja['1703']='洛阳';ja['1704']='开封';ja['1705']='焦作';ja['1706']='南阳';ja['1707']='新乡';ja['1708']='周口';ja['1709']='安阳';
ja['1800']='湖北省';ja['1802']='武汉';ja['1803']='宜昌';ja['1804']='黄石';ja['1805']='襄樊';ja['1806']='十堰';ja['1807']='荆州';ja['1808']='荆门';ja['1809']='孝感';ja['1810']='鄂州';ja['1811']='黄冈';ja['1812']='随州';
ja['1900']='湖南省';ja['1902']='长沙';ja['1903']='株洲';ja['1904']='湘潭';ja['1905']='衡阳';ja['1906']='岳阳';ja['1907']='常德';ja['1908']='益阳';ja['1909']='郴州';ja['1910']='邵阳';ja['1911']='怀化';ja['1912']='娄底';ja['1913']='永州';ja['1914']='张家界';
ja['2000']='陕西省';ja['2002']='西安';ja['2003']='咸阳';ja['2004']='宝鸡';ja['2005']='铜川';ja['2006']='延安';ja['2007']='渭南';ja['2008']='榆林';ja['2009']='汉中';ja['2010']='安康';ja['2011']='商洛';ja['2012']='杨凌';
ja['2100']='山西省';ja['2102']='太原';ja['2103']='运城';ja['2104']='大同';ja['2105']='临汾';
ja['2200']='黑龙江省';ja['2202']='哈尔滨';ja['2203']='伊春';ja['2204']='绥化';ja['2205']='大庆';ja['2206']='齐齐哈尔';ja['2207']='牡丹江';ja['2208']='佳木斯';
ja['2300']='辽宁省';ja['2302']='沈阳';ja['2303']='大连';ja['2304']='鞍山';ja['2305']='营口';ja['2306']='抚顺';ja['2307']='锦州';ja['2308']='丹东';ja['2309']='葫芦岛';ja['2310']='本溪';ja['2311']='辽阳';ja['2312']='铁岭';
ja['2400']='吉林省';ja['2402']='长春';ja['2403']='吉林';ja['2404']='辽源';ja['2405']='通化';ja['2406']='四平';ja['2407']='松原';ja['2408']='延吉';
ja['2500']='云南省';ja['2502']='昆明';ja['2503']='曲靖';ja['2504']='玉溪';ja['2505']='大理';ja['2506']='丽江';ja['2507']='蒙自';ja['2508']='开远';ja['2509']='个旧';ja['2510']='红河州';
ja['2600']='贵州省';ja['2602']='贵阳';ja['2603']='遵义';
ja['2700']='甘肃省';ja['2702']='兰州';ja['2703']='金昌';
ja['2800']='内蒙古';ja['2802']='呼和浩特';ja['2803']='赤峰';ja['2804']='包头';ja['2805']='嘉峪关';ja['2806']='酒泉';
ja['2900']='宁夏';ja['2902']='银川';
ja['3000']='西藏';ja['3002']='拉萨';ja['3003']='日喀则';
ja['3100']='新疆';ja['3102']='乌鲁木齐';ja['3103']='克拉玛依';ja['3104']='喀什地区';ja['3105']='伊犁';
ja['3200']='青海省';ja['3202']='西宁';
ja['3300']='香港';
ja['3400']='澳门';
ja['3500']='台湾';
ja['3600']='国外';

//主要城市数据字典
var maincity=[['华北-东北',['0100','0500','2303','2302','2402','2202']],['华东 地区',['0200','0702','0703','0802','0803','1502','1102','1202','1203']],['华南-华中',['0302','0400','0308','1802','1902','1702']],['西北-西南',['2002','0902','0600','2502']]];
//所有省份数据字典
var allprov=[['华北-东北',['1600','2100','2800','2300','2400','2200']],['华东 地区',['0700','0800','1500','1100','1300','1200']],['华南-华中',['0300','1400','1000','1700','1800','1900']],['西北-西南',['2000','2700','3200','2900','3100','0900','2600','2500','3000']],['其它',['3300','3400','3500','3600']]];
//获取滚动条的高度
function getPageScroll(){
	var yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}
	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}
//获取页面实际大小
function getPageSize(){ 
    
    var xScroll, yScroll; 
    
    if (window.innerHeight && window.scrollMaxY) {    
        xScroll = document.body.scrollWidth; 
        yScroll = window.innerHeight + window.scrollMaxY; 
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac 
        xScroll = document.body.scrollWidth; 
        yScroll = document.body.scrollHeight; 
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari 
        xScroll = document.body.offsetWidth; 
        yScroll = document.body.offsetHeight; 
    } 
    
    var windowWidth, windowHeight; 
    if (self.innerHeight) {    // all except Explorer 
        windowWidth = self.innerWidth; 
        windowHeight = self.innerHeight; 
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode 
        windowWidth = document.documentElement.clientWidth; 
        windowHeight = document.documentElement.clientHeight; 
    } else if (document.body) { // other Explorers 
        windowWidth = document.body.clientWidth; 
        windowHeight = document.body.clientHeight; 
    }    
    
    // for small pages with total height less then height of the viewport 
    if(yScroll < windowHeight){ 
        pageHeight = windowHeight; 
    } else {  
        pageHeight = yScroll; 
    } 
  
    // for small pages with total width less then width of the viewport 
    if(xScroll < windowWidth){    
        pageWidth = windowWidth; 
    } else { 
        pageWidth = xScroll; 
    } 
  
    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight); 
    return arrayPageSize; 
}

TC.init_del_sele = function(o) {
    $(o).click(function() {
        var id = $(o).attr('id').split('-')[1];
        event_monitor.broadcast(this, "sele_deled", id);
    });
}
TC.init_sele_city = function(o) {
    $(o).click(function() {

        var id = $(o).attr('id').split('-')[1];
        if ($(o).hasClass("seled")) { event_monitor.broadcast(this, "sele_deled", id); return; }
        if (select_count == 4)
            var sel_arr = $('#sv').val().split(' ');
        else if (select_count == 1)
            var sel_arr = $('#hdlocation').val().split(' ');
        
            
        if (select_count >0 && sel_arr.length == select_count + 1) { alert('您已经选择了' + select_count + "个城市。请取消已选项后重新选择。"); return; }
        //if (select_count ==4 && sel_arr.length == select_count + 1) { alert('您只能选择' + select_count + "个城市。"); return; }
        //if (select_count ==1 && sel_arr.length == select_count + 1) { $('#pop').hide(); $('#overlay').hide(); return; }
        
        if ($('#se-' + id).length == 0) {
            $('#pop_sele').html($('#pop_sele').html() + "<li><a class='j a_del_sele' id='se-" + id + "' href='javascript:void(0);'>" + $(o).html() + "</a></li>");
            load_event_monitor($('#pop_sele'));
            event_monitor.broadcast(this, "sele_add", id);
            $('#c-' + id).addClass('seled');
            if ($('#pc-' + id).length != 0) { $('#pc-' + id).addClass('seled'); };
            
            if(select_count==1){
            	$('#spop').hide();
	        	$('#closepop').click();
	        }
        }
    });
}
TC.init_sh_city=function(o)
{
	$(o).click(function(e){
		var obj = $(o).attr('id').split('-')[1];
		var id=obj.substring(0,2);
		var content='<ul>';
		var key;
		for(var i=0;i<20;i++)
		{
			if(i<10) key=id+'0'+i;else key=id+i+'';
			if(ja[key])
			{
				if($('#se-'+key).length==0)
					content+="<li><a href='javascript:void(0);' id='pc-"+key+"' class='j a_sele_city'>"+ja[key]+"</a></li>";
				else
					content+="<li><a href='javascript:void(0);' id='pc-"+key+"' class='j a_sele_city seled'>"+ja[key]+"</a></li>";
			}
		}
		content+='</ul>';
		var px = e.pageX-15;
		var py = e.pageY-15;
		$("#spop").html(content).css('top',py+'px').css('left',px+'px').show();
		load_event_monitor($('#spop'));
	});
}

function getValue(data){var val='';var selvalue = data.split(' ');	for(i=0;i<selvalue.length-1;i++){val+=ja[selvalue[i]+''] + ' ';}return val;};

var isbuild=false;
var ismd=false;
var lmX=0;
var lmY=0;
var leX=0;
var leY = 0;

$(function() {
    $("#sub_form").click(function() {
        var se = getValue($("#sv").val()); alert('您选择了：' + se + ', id: ' + $("#sv").val());
    });

    if (!isbuild) {
        var content = '<h2>主要城市</h2>';
        for (var i = 0; i < maincity.length; i++) {
            content += '<div><h3>' + maincity[i][0] + "</h3><div class='optcon' id='mainCitys'><ul>";
            for (var k = 0; k < maincity[i][1].length; k++) {
                content += "<li><a class='j a_sele_city' id='c-" + maincity[i][1][k] + "' href='javascript:void(0);'>" + ja[maincity[i][1][k]] + "</a></li>";
            }
            content += '</ul></div><div class="clr"></div></div>';
        }

        content += "<h2>所有省份</h2>";
        for (var i = 0; i < allprov.length; i++) {
            content += '<div><h3>' + allprov[i][0] + "</h3><div class='optcon'><ul>";
            for (var k = 0; k < allprov[i][1].length; k++) { content += "<li><a class='j a_sh_city' id='p-" + allprov[i][1][k] + "' href='javascript:void(0);'>" + ja[allprov[i][1][k]] + "</a></li>"; }
            content += '</ul></div><div class="clr"></div></div>';
        }
        $('#opt').html(content);
        load_event_monitor($('#opt'));
        isbuild = true;
    }
    
    $('#pop').mouseover(function() { $('#spop').hide(); });

    $('#closepop').click(function() { $('#pop').hide(); $('#overlay').hide(); $("select").css("visibility","visible"); });

    $('#tit').mousedown(function(e) {
        if (leX == 0) {
            leX = parseInt($('#pop').css('left').replace('px', ''));
            leY = parseInt($('#pop').css('top').replace('px', ''));
        }
        lmX = e.pageX; lmY = e.pageY; ismd = true;
        return false;
    }).mouseup(function(e) { if (ismd) { upPosition(e.pageX, e.pageY); ismd = false; } });

    $(document).mousemove(function(e) {
        if (ismd)
        { upPosition(e.pageX, e.pageY); return false; } 
    }).mouseup(function(e) { if (ismd) { upPosition(e.pageX, e.pageY); ismd = false; } });

});
 
function upPosition(x,y){ 
leX=parseInt(x-lmX+leX);
leY=parseInt(y-lmY+leY);

$('#pop').css('left',(leX+'px')).css('top',(leY+'px')); 
lmX=x;lmY=y;
}